Cascading Style Sheet is a mechanism for adding style to web pages written in Hypertext Markup Language (HTML), Extensible Hypertext Markup Language (XHTML), or any other Extensible Markup Language (XML) including, for example, Scalable Vector Graphics (SVG) and XML User Interface Language (XUL).
CSS is used to help web designers to define colors, fonts, layout, and other aspects of document presentation. CSS is designed primarily to enable the separation of document content (written in HTML or a similar markup language) from document presentation (written in CSS). This separation can improve content accessibility, provide more flexibility and control in the specification of presentation characteristics, and reduce complexity and repetition in the structural content. CSS can also allow the same markup page to be presented in different styles for different rendering methods, such as on-screen, in print, by voice (when read out by a speech-based browser or screen reader) and on Braille-based, tactile devices.
CSS information can be provided by various sources. CSS style information can be either attached as a separate document or embedded in the HTML document. Multiple style sheets can be imported, and alternative style sheets can be specified so that the user can choose between them.
The CSS specifications are developed by the World Wide Web Consortium (W3C). Most web browsers provide support for the CSS specifications. However, the browsers are often incorrect in certain areas and fraught with inconsistencies and bugs. The proliferation of such CSS-related inconsistencies and the variation in feature support has made it difficult for web designers to achieve a consistent appearance across platforms. As a result, web designers have to resort to using some workarounds such as CSS filters in order to achieve consistent appearance in browsers that do not have a consistent CSS behavior.
A CSS filter is a coding technique used to hide or show CSS markup depending on the browser's brand and/or version number. CSS filters may include conditional comments that use tags to denote special instructions, and CSS hacks that exploit the rendering flaws of certain browsers. CSS hacks force browsers to read only certain parts of a CSS file to control whether style rules are seen by a specific browser or browser version.
Currently, web designers have to manually add CSS filters to CSS files to achieve desired results across the browsers the web designers choose to support. Hence, web designers have to be very familiar with peculiarities and inconsistencies associated with these browsers, and have to know how to use the CSS filtering techniques. In addition, when a new browser version is released, web designers need to check whether the added CSS filters will still work as intended.